package com.criticalritrpg.bd;

import java.text.SimpleDateFormat;
import java.util.Date;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import com.criticalritrpg.R;

public class BDFicha extends SQLiteOpenHelper {

	public BDFicha(Context context) {
		super(context, DB_NAME, null, DB_VERSION);

	}

	private static final String DB_NAME = "jogador_ficha";
	private static final int DB_VERSION = 1;
	
	public static final String COL_FK_JOGO ="idjogo";
	public static final String TABLE_NAME_FICHA = "fichas";
	public static final String FICHA_ID = "_id";
	
	public static final String COL_FICHA = " (_id INTEGER PRIMARY KEY AUTOINCREMENT, ";
	public static final String COL_NOMEJOGADOR = "nomeJogador";
	public static final String COL_NOMEPERSONAGEM = "nomePersonagem";
	public static final String COL_IDADE = "idade";
	public static final String COL_NIVEL = "nivel";
	public static final String COL_CLASSE = "classe";
	public static final String COL_RACA = "raca";
	public static final String COL_TENDENCIA = "tendencia";
	public static final String COL_XPTOTAL = "xptotal";
	public static final String COL_INICIATIVA = "iniciativa";
	public static final String COL_FORCA = "forca";
	public static final String COL_CONSTITUICAO = "constituicao";
	public static final String COL_DESTREZA = "destreza";
	public static final String COL_INTELIGENCIA = "inteligencia";
	public static final String COL_SABEDORIA = "sabedoria";
	public static final String COL_CARISMA = "carisma";
	public static final String COL_CLASSEARMADURA = "classeArmadura";
	public static final String COL_FORTITUDE = "fortitude";
	public static final String COL_REFLEXO = "reflexo";
	public static final String COL_VONTADE = "vontade";
	public static final String COL_PONTOSDEVIDA = "pontosvida";
	public static final String COL_MAC = "mac";
	
	private static final String STRING_CREATE_TBFICHA = "CREATE TABLE "
			+ TABLE_NAME_FICHA + COL_FICHA + COL_NOMEJOGADOR + " TEXT, "
			+ COL_NOMEPERSONAGEM + " TEXT, "+ COL_IDADE + " INTEGER, "+ COL_NIVEL + " INTEGER, "+ COL_CLASSE + " TEXT, "+ 
			COL_RACA + " TEXT, "+ COL_TENDENCIA+ " TEXT, " + COL_XPTOTAL + " INTEGER, "+ COL_INICIATIVA + " INTEGER, "+ 
			COL_FORCA + " INTEGER, "+ COL_CONSTITUICAO + " INTEGER, "+ COL_DESTREZA + " INTEGER, "+ COL_INTELIGENCIA + " INTEGER, "+
			COL_SABEDORIA + " INTEGER, "+ COL_CARISMA + " INTEGER, "+ COL_CLASSEARMADURA + " INTERGER, "+ COL_FORTITUDE + " INTEGER, "+ 
			COL_REFLEXO + " INTEGER, "+ COL_VONTADE + " INTEGER, "+ COL_FK_JOGO +" INTEGER, "+COL_MAC+" TEXT, " + COL_PONTOSDEVIDA + " INTEGER);";
	
	@Override
	public void onCreate(SQLiteDatabase db) {
		// TODO Auto-generated method stub
		db.execSQL(STRING_CREATE_TBFICHA);
		
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		// TODO Auto-generated method stub
		// For now, clear the database and re-create
		db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME_FICHA);
		onCreate(db);

	}

	public void insereDadosNaFicha(String nomeJogador, String nomePersonagem, int idade, int nivel, String classe, String raca, String tendencia,
			int xptotal, int iniciativa, int forca, int constituicao, 
			int destreza,int inteligencia, int sabedoria, int carisma,
			int classearmadura, int fortitude, int reflexo, int vontade,int pontosdevida,int idjogo) {
		ContentValues cv = new ContentValues(21);
		
		cv.put(COL_NOMEJOGADOR, nomeJogador);
		cv.put(COL_NOMEPERSONAGEM, nomePersonagem);
		cv.put(COL_IDADE, idade);
		cv.put(COL_NIVEL, nivel);
		cv.put(COL_CLASSE, classe);
		cv.put(COL_RACA, raca);
		cv.put(COL_TENDENCIA, tendencia);
		cv.put(COL_XPTOTAL, xptotal);
		cv.put(COL_INICIATIVA, iniciativa);
		cv.put(COL_FORCA, forca);
		cv.put(COL_CONSTITUICAO, constituicao);
		cv.put(COL_DESTREZA, destreza);
		cv.put(COL_INTELIGENCIA, inteligencia);
		cv.put(COL_SABEDORIA, sabedoria);
		cv.put(COL_CARISMA, carisma);
		cv.put(COL_CLASSEARMADURA, classearmadura);
		cv.put(COL_FORTITUDE, fortitude);
		cv.put(COL_REFLEXO, reflexo);
		cv.put(COL_VONTADE, vontade);
		cv.put(COL_PONTOSDEVIDA,pontosdevida);
		cv.put(COL_FK_JOGO, idjogo);
		getWritableDatabase().insert(TABLE_NAME_FICHA, null, cv);
		
	}
	
	public Cursor pegaFicha(String nomeJogador) {
		String comando = "SELECT _id, nomeJogador,nomePersonagem,idade,nivel,classe" +
				",raca,tendencia,xptotal,iniciativa,forca,constituicao,destreza,inteligencia," +
				"sabedoria,carisma,classearmadura,fortitude,reflexo,vontade,pontosvida FROM " + TABLE_NAME_FICHA+ " where nomeJogador = '" + nomeJogador + "'";
	    return(getReadableDatabase().rawQuery(comando,null));
	}
	
	public void atualizaNivel(Integer nivel, String nomePersonagem) {
		ContentValues cv = new ContentValues(1);
		cv.put(COL_NIVEL, nivel);
		getWritableDatabase().update(TABLE_NAME_FICHA, cv, COL_NOMEPERSONAGEM+"=?",new String []{nomePersonagem} );
	}
	
	public void atualizaXP(Integer xp, String nomePersonagem) {
		ContentValues cv = new ContentValues(1);
		cv.put(COL_XPTOTAL, xp);
		getWritableDatabase().update(TABLE_NAME_FICHA, cv, COL_NOMEPERSONAGEM+"=?",new String []{nomePersonagem} );
	}
	
	public void atualizaIniciativa(Integer iniciativa, String nomePersonagem) {
		ContentValues cv = new ContentValues(1);
		cv.put(COL_INICIATIVA, iniciativa);
		getWritableDatabase().update(TABLE_NAME_FICHA, cv, COL_NOMEPERSONAGEM+"=?",new String []{nomePersonagem} );
	}
	
	public void atualizaForca(Integer forca, String nomePersonagem) {
		ContentValues cv = new ContentValues(1);
		cv.put(COL_FORCA, forca);
		getWritableDatabase().update(TABLE_NAME_FICHA, cv, COL_NOMEPERSONAGEM+"=?",new String []{nomePersonagem} );
	}
	
	public void atualizaConstituicao(Integer constituicao, String nomePersonagem) {
		ContentValues cv = new ContentValues(1);
		cv.put(COL_CONSTITUICAO, constituicao);
		getWritableDatabase().update(TABLE_NAME_FICHA, cv, COL_NOMEPERSONAGEM+"=?",new String []{nomePersonagem} );
	}
	
	public void atualizaDestreza(Integer destreza, String nomePersonagem) {
		ContentValues cv = new ContentValues(1);
		cv.put(COL_DESTREZA, destreza);
		getWritableDatabase().update(TABLE_NAME_FICHA, cv, COL_NOMEPERSONAGEM+"=?",new String []{nomePersonagem} );
	}
	
	public void atualizaInteligencia(Integer inteligencia, String nomePersonagem) {
		ContentValues cv = new ContentValues(1);
		cv.put(COL_INTELIGENCIA, inteligencia);
		getWritableDatabase().update(TABLE_NAME_FICHA, cv, COL_NOMEPERSONAGEM+"=?",new String []{nomePersonagem} );
	}
	
	public void atualizaSabedoria(Integer sabedoria, String nomePersonagem) {
		ContentValues cv = new ContentValues(1);
		cv.put(COL_SABEDORIA, sabedoria);
		getWritableDatabase().update(TABLE_NAME_FICHA, cv, COL_NOMEPERSONAGEM+"=?",new String []{nomePersonagem} );
	}
	
	public void atualizaCarisma(Integer carisma, String nomePersonagem) {
		ContentValues cv = new ContentValues(1);
		cv.put(COL_CARISMA, carisma);
		getWritableDatabase().update(TABLE_NAME_FICHA, cv, COL_NOMEPERSONAGEM+"=?",new String []{nomePersonagem} );
	}
	
	public void atualizaCA(Integer ca, String nomePersonagem) {
		ContentValues cv = new ContentValues(1);
		cv.put(COL_CLASSEARMADURA, ca);
		getWritableDatabase().update(TABLE_NAME_FICHA, cv, COL_NOMEPERSONAGEM+"=?",new String []{nomePersonagem} );
	}
	
	public void atualizaFortitude(Integer fortitude, String nomePersonagem) {
		ContentValues cv = new ContentValues(1);
		cv.put(COL_FORTITUDE, fortitude);
		getWritableDatabase().update(TABLE_NAME_FICHA, cv, COL_NOMEPERSONAGEM+"=?",new String []{nomePersonagem} );
	}
	
	public void atualizaReflexo(Integer reflexo, String nomePersonagem) {
		ContentValues cv = new ContentValues(1);
		cv.put(COL_REFLEXO, reflexo);
		getWritableDatabase().update(TABLE_NAME_FICHA, cv, COL_NOMEPERSONAGEM+"=?",new String []{nomePersonagem} );
	}
	
	public void atualizaVontade(Integer vontade, String nomePersonagem) {
		ContentValues cv = new ContentValues(1);
		cv.put(COL_VONTADE, vontade);
		getWritableDatabase().update(TABLE_NAME_FICHA, cv, COL_NOMEPERSONAGEM+"=?",new String []{nomePersonagem} );
	}
	
	public void atualizaPV(Integer pv, String nomePersonagem) {
		ContentValues cv = new ContentValues(1);
		cv.put(COL_PONTOSDEVIDA, pv);
		getWritableDatabase().update(TABLE_NAME_FICHA, cv, COL_NOMEPERSONAGEM+"=?",new String []{nomePersonagem} );
	}
	/**
	 * 
	 * @param endereco do dispositivo
	 * @param nomePersonagem
	 */
	public void atualizaMAC(String mac, String nomePersonagem) {
		ContentValues cv = new ContentValues(1);
		cv.put(COL_MAC, mac);
		getWritableDatabase().update(TABLE_NAME_FICHA, cv, COL_NOMEPERSONAGEM+"=?",new String []{nomePersonagem} );
	}
	
	public Cursor deletaFicha(String nomePersonagem) {
		String comando = "DELETE FROM ficha WHERE nomePersonagem = '" + nomePersonagem + "'";
	    return(getReadableDatabase().rawQuery(comando,null));
	}
	
	public Cursor all(int jogoid){
		String comando = "SELECT * FROM fichas WHERE "+COL_FK_JOGO+"="+jogoid;
		return (getReadableDatabase().rawQuery(comando, null));
		
	}
	
}
